Skip to content

Extract RCTRedBoxController from RCTRedBox.mm (#56509)#56509

Closed
motiz88 wants to merge 3 commits intofacebook:mainfrom
motiz88:export-D101484586
Closed

Extract RCTRedBoxController from RCTRedBox.mm (#56509)#56509
motiz88 wants to merge 3 commits intofacebook:mainfrom
motiz88:export-D101484586

Conversation

@motiz88
Copy link
Copy Markdown
Contributor

@motiz88 motiz88 commented Apr 20, 2026

Summary:

Moves the RCTRedBoxController class, previously inlined in RCTRedBox.mm, into its own implementation and header files (RCTRedBoxController.mm, RCTRedBoxController+Internal.h). An upcoming diff will fork these files for the experimental RedBox 2.0.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D101484586

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 20, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Apr 20, 2026

@motiz88 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D101484586.

motiz88 and others added 3 commits April 21, 2026 08:08
Summary:
Here, we add a mechanism to override React Native feature flag default values via a Buck command line argument, without modifying source files.

A `genrule` in the featureflags BUCK target always interposes on `ReactNativeFeatureFlagsDefaults.h` before compilation. When `react_native.feature_flag_defaults` is set to a JSON object via `--config`, a Python script rewrites the return values in the matching method bodies. When unset, the header passes through unmodified.

The Python script matches each override against the full method signature shape (`<returnType> <flagName>() override { ... return <value>; }`) with lenient whitespace, and fails the build if any requested flag name is not found in the header.

Usage:
```
buck2 build --config 'react_native.feature_flag_defaults={"enableViewCulling":true}' //target
buck2 build --config 'react_native.feature_flag_defaults={"enableViewCulling":true,"preparedTextCacheSize":500}' //target
```

This modifies defaults only — app-level providers still take priority.

Changelog: [Internal]

Differential Revision: D101484355
Summary:
Add `redBoxV2IOS` and `redBoxV2Android` common feature flags (default false), gating RedBox 2.0 independently on each platform.

Changelog: [Internal]

Differential Revision: D98115369
Summary:
Pull Request resolved: facebook#56509

Moves the `RCTRedBoxController` class, previously inlined in `RCTRedBox.mm`, into its own implementation and header files (`RCTRedBoxController.mm`, `RCTRedBoxController+Internal.h`). An upcoming diff will fork these files for the experimental RedBox 2.0.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D101484586
@meta-codesync meta-codesync Bot changed the title Extract RCTRedBoxController from RCTRedBox.mm Extract RCTRedBoxController from RCTRedBox.mm (#56509) Apr 21, 2026
@motiz88 motiz88 force-pushed the export-D101484586 branch from 09452e7 to d49cb2e Compare April 21, 2026 18:33
@meta-codesync meta-codesync Bot closed this in 084456e Apr 21, 2026
@facebook-github-tools facebook-github-tools Bot added the Merged This PR has been merged. label Apr 21, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Apr 21, 2026

This pull request has been merged in 084456e.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant